Computer applications are widespread in society and run on computers that for example may include hardware processing elements, memory devices and other hardware physical components. Many computer applications exist to provide services to human users. These applications generally provide some “user interface” by which users interact with the computer or computer system, for example, to make requests of the system and to receive responses from the system.
Computer applications have grown tremendously in size and complexity over the history of computing. The technical discipline of software engineering (and related fields) has arisen to improve the quality and reduce the costs of developing computer applications. Software engineering researchers have devised tools and methods to help realize these goals. Among these tools and methods are ones that support the gathering, specification, and validation of software requirements in general, and of requirements relating to user interfaces in particular.
Many engineering techniques and tools use a combination of textual and graphical notations for representing software requirements. The requirements may encompass functional and nonfunctional (e.g., quality) requirements on the system under development. The requirements may also address architectural requirements on the system under development, that is, on the existing of components or elements in the system and on the relationships among these components or elements.
For example, one widely used standard for the representation of software requirements and designs is UML, the Unified Modeling Language. UML includes many different annotated graphical representations for representing aspects of a system under development, including aspects of structure, state, and behavior and relationships among these things. Processes have been proposed for the specification of software requirements and design using UML. There are no a priori restrictions on the use of UML for kinds of applications, application domains, computer systems, and others.
A use case diagram is one form of graphical representation in UML. A use case diagram may represent a conceptual space that includes systems, use cases, and actors. An “actor” corresponds to a system user. A “use case” is a textual description of user interactions with the system. A use case diagram may show system boundaries represented as attributed boxes; these may contain use cases. A use case diagram also may show use cases and actors by distinctive iconic representations. A use case diagram further may show associations between system boundaries, use cases, and actors, in the form of lines connecting them. The associations can be interpreted in various respects, for instance, an association between an actor and a use case is typically interpreted to mean that the actor participates in a use case, and an association between one use case and another may be interpreted to mean that one use case references another. If a use case is represented within a system boundary, the interpretation is that the use case is a use case of the system, that is, that the use case describes a user interaction with that system. In this way, a use case diagram can show the prospective system, the use cases of the system, the users of the system, and the occurrence of relationships (associations) among them.
UML also has representations relating to user interfaces. User interface (UI) sketches may be used to show what a particular graphical user interface looks like, e.g., in terms of images, features for entering data, controls for navigating, and others. Screen flows may be used to show sequences of UI sketches that represent changes in the user interface as a user interacts with the system. Storyboards are a combination of text and screen flows, where the text may be used to describe the behavior that is represented by the screen flow and the UI sketches in the flow. There are other ways of representing user interfaces and other commercial products that allow a software developer to specify, design, prototype, and validate user interfaces.
The inventors in the present disclosure have noted, however, that what is missing in the previous and existing work, is a representation like that of UML use-case diagrams that shows systems, actors, and UI screens and screen flows and that also shows the associations among these items or elements.